The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
Traditionally, tasks queued for processing in an on-demand services environment have been processed using a predetermined number of threads dedicated to processing such queued tasks. In some circumstances, the predetermined number of threads is divided amongst different types of tasks, such that for each task type a different set of the threads is made available for processing tasks of that type. Unfortunately, various limitations are associated with rigidly predetermining the number of threads to be utilized for task processing.
For example, the number of threads to be utilized for task processing has traditionally been arbitrarily determined (e.g. by a developer, etc.). Thus, there has been an inability to ensure that the predetermined number of threads is sufficient for processing tasks in a manner which meets quality of service (QOS) goals set for such task processing. In particular, the number of threads has generally been determined without respect to behavior of the various task types, historical volume measured for incoming tasks types, processing efficiency with respect to the tasks, etc.
Accordingly, it is desirable to provide techniques enabling dynamic resource allocation to task processing performed by the database system, to improve efficiency of the database system.